Skip to content

PR: Merge feature/ProfessorApplication-page into develop#31

Merged
LucaTvl merged 1 commit into
developfrom
feature/ProfessorApplication-page
Aug 14, 2025
Merged

PR: Merge feature/ProfessorApplication-page into develop#31
LucaTvl merged 1 commit into
developfrom
feature/ProfessorApplication-page

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Aug 14, 2025

Closes #28

Cambios Principales

Página de Solicitud para Profesores

Creación de la Página: Se ha creado una nueva página (ProfessorApplication.tsx) que contiene el formulario de solicitud.
Adaptación de Componente: El diseño inicial se adaptó de un entorno Next.js a nuestro stack de Vite + React Router, eliminando directivas como "use client" y actualizando los componentes de enrutamiento (Link de react-router-dom en lugar de next/link).

Componentes de UI Refactorizados:

  • Se han refactorizado los componentes de formulario (Input, Textarea) para encapsular su lógica asociada (etiquetas, iconos, mensajes de error).

  • El componente Input ahora es más robusto y puede renderizar tanto un como un <textarea> a través de la prop as="textarea".

  • Se ha limpiado el JSX de la página para eliminar divs y Labels redundantes, utilizando los nuevos componentes "inteligentes" para un código más limpio y mantenible.

Implementación de Rutas Protegidas y Control de Acceso

  • Componente ProtectedRoute.tsx: Se ha implementado un componente guardián que se integra con nuestro AuthContext.

  • Maneja un estado de carga (isLoading) para prevenir redirecciones prematuras.

  • Redirige a los usuarios no autenticados a la página de /login.

  • Valida que el rol del usuario esté incluido en una lista de allowedRoles. Si no es así, redirige a /unauthorized.

  • Actualización de AppRouter.tsx: La nueva ruta /professor/apply ha sido añadida al enrutador y está protegida por el componente ProtectedRoute, permitiendo el acceso únicamente a los usuarios con rol de 'student' y 'admin'.

Navbar Dinámica y Navegación Condicional

  • Botón "Quiero ser profesor" Funcional: El botón en el NavBar ahora tiene lógica funcional.

  • Se ha creado una función handleApplyClick que utiliza los hooks useAuth y useNavigate.

  • La función comprueba si el usuario está autenticado y tiene el rol correcto antes de redirigir.

  • Renderizado Condicional Avanzado: La visibilidad del botón "Quiero ser profesor" ahora es dinámica para mejorar la experiencia de usuario:

    • SE MUESTRA para usuarios no autenticados y para usuarios con rol de 'student'.

    • SE OCULTA para usuarios con rol de 'professor' y 'admin', ya que la acción no es relevante para ellos.

Archivos Clave Modificados

  • src/pages/ProfessorApplication.tsx (Nuevo)
  • src/router/AppRouter.tsx (Modificado)
  • src/router/ProtectedRoute.tsx (Modificado/Revisado)
  • src/components/NavBar.tsx (Modificado)
  • src/components/ui/Input.tsx (Modificado)

Consideraciones Adicionales

La lógica de envío del formulario en ProfessorApplication.tsx (handleSubmit) actualmente solo muestra un console.log y una alerta. Una tarea de seguimiento será integrar la llamada a la API con axios para enviar los datos al backend.

@github-actions github-actions Bot added automated-pr Pull Request generated by GitHub Actions. needs-review This PR need review labels Aug 14, 2025
Copy link
Copy Markdown
Collaborator

@NiconiKimg NiconiKimg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

En próximas actualizaciones se debería agregar una foto en la sección de profesores. Está solo el alt.

@LucaTvl LucaTvl merged commit 254f2f6 into develop Aug 14, 2025
1 check passed
@LucaTvl LucaTvl deleted the feature/ProfessorApplication-page branch December 19, 2025 18:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automated-pr Pull Request generated by GitHub Actions. needs-review This PR need review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature: Incorporación Pagina Aplicar para ser Profesor

2 participants